package com.swanclouds.api.managers;

import com.swanclouds.common.RestService;
import com.swanclouds.model.common.ActionResponse;
import com.swanclouds.model.common.redfish.CollectionResource;
import com.swanclouds.model.managers.VirtualMedia;
import com.swanclouds.model.managers.VmmControl;
import com.swanclouds.redfish.managers.domain.VirtualMediaModel;
import java.util.List;
/**
 * Author: 李文强
 * Title: VirtualMediaService
 * Description: TODO
 */
public interface VirtualMediaService extends RestService {

    /**
     *查询虚拟设备集合资源信息
     * @return CollectionResource
     */
    CollectionResource get();

    /**
     * 查询虚拟设备集合资源信息详情信息
     * @return java.util.List
     */
    List<VirtualMedia> list();

    /**
     * 根据ID查询虚拟媒体信息
     * @param virtualMediaId 路径后虚拟磁盘ID
     * @return VirtualMedia
     */
    VirtualMedia getVirtualMedia(String virtualMediaId);

    /**
     * 服务器弹出卸载虚拟媒体
     * @param vmmControl [VirtualMediaId 路径后虚拟磁盘ID,image 镜像ip+绝对路径+镜像名称 VmmControlType 虚拟媒体操作类型]
     * @return ActionResponse
     */
    ActionResponse virtualMediaEjectMedia(VmmControl vmmControl);

    /**
     * 服务器挂载虚拟设备
     * @param vmmControl [VirtualMediaId 路径后虚拟磁盘ID,image 镜像ip+绝对路径+镜像名称 VmmControlType 虚拟媒体操作类型]
     * @param virtualMediaId Path 必填 虚拟磁盘ID
     * @return ActionResponse
     */
    VirtualMediaModel virtualMediaInsertMedia(VmmControl vmmControl,String virtualMediaId);

}
